---
title: Виключно авторитетний сервер імен у Debian
x-toc-enable: true
...

Вступ
============

*Востаннє цей посібник було протестовано на Debian 11.*

Авторитетний сервер імен відповідає за обробку *зони*,
яка в цьому контексті була би вашим *доменним іменем*. *Виключно* авторитетний означає, що сервер
обробляє *тільки* ваші доменні імена, як визначено, і нічого більше.

Як правило, коли ви замовляєте веб-хостинг у хостингової компанії, вони надають
доступ до своїх серверів імен (наприклад, `ns1.webhostingcompany.com`
і `ns2.webhostingcompany.com`) - багато CDN і реєстраторів доменних імен також
надають це клієнтам. Тут налаштовуються ваші домени,
вказуючи, де ваші сервери (наприклад, HTTP, електронна пошта) розташовані в інтернеті.

У цьому посібнику ви дізнаєтесь, як *зробити це самостійно*. Це можна зробити недорого
після обіду. Цей посібник *не* показує вам, як створити
*відкритий розпізнавач*, подібний до того, який ви використовували би для розв'язання будь-якого домену;
це можна розглянути пізніше в окремому посібнику.

Давайте розпочнемо!

Вимоги
============

IP-адреси
------------

Вам потрібні *дві* адреси IPv4 і *дві* адреси IPv6 з відкритим портом 53 на них
усіх. IP-маршрутизація та фільтрація пакетів виходять за рамки цього
керівництва, і передбачається, що ви це вже охопили.

Ви можете перевірити [розділ маршрутизатора](../router/) для наставництва, якщо ви ще
не відповідаєте наведеній вище вимозі.

Доменне ім'я
-----------

Ви потребуєте *доменне ім'я*, таке як `example.com`, і ваш регістратор повинен
підтримувати встановлення *glue* records (включаючи IPv6). Вашому регістратору варто
в ідеалі підтримувати DNSSEC, у випадку, якщо ви хочете його використовувати.

Реєстратор [gandi.net](https://www.gandi.net/) *відмінний*, і відповідає
цим критеріям. Це *солідна* компанія, дуже доброзичлива до проектів вільного програмного
забезпечення.

Цей список містить посилання на багатьох реєстраторів, включаючи Gandi. У цьому
списку ви можете знайти тих, що підтримують IPv6 Glue:

<https://www.sixxs.net/faq/dns/?faq=ipv6glue>

**Не всі оператори зон верхнього рівня підтримують IPv6 glue, незалежно від обраного реєстратора.
За посиланням sixxs.net вище наведено список зон верхнього рівня, які, як відомо, підтримують IPv6
glue, такі як `org` і `info` можуть це робити. Перевірте список ПЕРЕД реєстрацією
доменного імені!**

Якщо ваш поточний реєстратор доменних імен не відповідає цим критеріям, вам слід
розглянути можливість перенесення доменних імен до іншого реєстратора.

Glue records
------------

Увійдіть у свій обліковий запис реєстратора доменного імені, напр. обліковий запис Gandi, та
знайдіть розділ, що стосується вашого доменного імені. У *цьому* посібнику я буду
використовувати своє доменне ім'я `shlinux.org` в якості приклада, оскільки я володію цим доменом
і виконую їх на ньому: `ns1.shlinux.org` і `ns2.shlinux.org` - сайт Fedfree
використовує *ці* імена серверів для конфігурації DNS.

Зазвичай, якщо ви проводите аутсорсинг свого DNS-хостингу, ви просто встановлюєте запис NS для
свого доменного імені в обліковому записі реєстратора, вказуючи `ns1.domain.com`
та `ns2.domain.com`, або будь-який інший; тут ви лише вказуєте
імена.

Оскільки ви використовуєте *власний* DNS, ви *також* повинні вказати IP-адресу,
в *glue record* домену вашого сервера імен. Вам *не* обов'язково використовувати
одне доменне ім'я верхнього рівня для двох серверів імен, але заради простоти ми
припустимо, що ви збираєтесь використовувати той самий домен.

*Glue record* існує, оскільки запис NS все ще встановлено відповідним чином,
але він посилається на самого себе. Glue record функціонально еквівалентний
запису A/AAAA.

Встановіть glue records для всіх IP-адрес, які ви збираєтеся використовувати. У моєму прикладі
я маю такі записи (в обліковому записі Gandi, який я використовую для власних
серверів імен):

* `ns1.shlinux.org` (IPv4): `81.187.172.130`
* `ns1.shlinux.org` (IPv6): `2001:8b0:b95:1bb5::2`
* `ns2.shlinux.org` (IPv4): `81.187.172.131`
* `ns2.shlinux.org` (IPv6): `2001:8b0:b95:1bb5::3`

Насправді ви можете вказати більше, ніж це, але ми припустимо, що у вас є дві адреси
IPv4 і дві адреси IPv6, що є мінімальною вимогою для серверів імен з
подвійним стеком.

Ви повинні **також** досі встановлювати звичайні записи NS. Я встановила свої сервери імен
для `shlinux.org` на `ns1.shlinux.org` і `ns2.shlinux.org`, і це працює за допомогою glue
record.

*Сам* сервер імен також має оголошувати записи імені NS, і A/AAAA
записи, таким чином: ns1, ns2 (правильно для наведеного вище прикладу, але вам слід
відповідним чином адаптувати). Про це пізніше.

Встановлення програмного забезпечення
---------------------

Встановіть Debian, на цільовій машині. Ви повинні налаштувати його так, щоб він
мав 2 загальнодоступні IPv4 та 2 загальнодоступні IPv6 адреси, на всі з яких можна зробити ping
із інтернета, з *портом 53* відкритим на *кожному із них*.

Якщо вам потрібне тунельне з'єднання для маршрутизації статичних IP-адрес до вашого комп'ютера,
ви можете переглянути посібники в [розділі маршрутизатора](../router/).

Чудово! Тепер встановіть bind9 на машину. Ми налаштуємо `bind9` від ISC.
Встановіть його за допомогою менеджера пакетів:

	apt-get install bind9

Конфігураційні файли Bind9
-------------

У цьому посібнику ми *не* будемо налаштовувати підлеглий сервер імен; це
буде розглянуто пізніше як продовження цього. В *цьому* посібнику ми припустимо,
що головний і підлеглий bind9 працюють на одному хості, з 2 загальнодоступними
IPv4 і 2 загальнодоступними IPv6 виділеними адресами. Технічно це означає, що
*підлеглого немає*, але він працює, якщо у вас є 2 адреси IPv4 і (якщо використовується
IPv6) 2 IPv6 адреси, призначені до вашого хоста, усі публічно маршрутизовані з
відкритим портом 53.

Задля вашої зручності Fedfree *включив* довідкові конфігураційні файли для використання
вами, на веб-сайті Fedfree. Ви можете просто завантажити його та встановити:

Завантажте цей файл: [debian-bind-no-slave.tar.xz](debian-bind-no-slave.tar.xz)

ПРИМІТКА: Зразки конфігураційних файлів *не* передбачають DNSSEC, і DNSSEC не
буде налаштовано в *цьому* посібнику; це буде розглянуто в наступному посібнику.

Розпакуйте його:

	tar -xf debian-bind-no-slave.tar.xz

Ви повинні мати каталог під назвою `bind`. Це серія зразків
конфігураційних файлів, але вони фактично *використовуються* в реальному світі, для мого
хостингу (принаймні в грудні 2022 року). Я не включила *всі* файли зон в
нього для всіх доменів, оскільки це було б надмірно для цілей цього
керівництва.

НЕ використовуйте ці конфігураційні файли просто як є, звісно. Вони не будуть працювати для вас,
оскільки містять конфігурацію для моїх IP-адрес і доменів. У наступних
розділах ми розглянемо все.

Налаштування
=============

Встановіть зразки конфігураційних файлів
--------------------------

По-перше, коли bind9 уже встановлено, видаліть `/etc/bind` таким чином (від імені root):

	rm -Rf /etc/bind

Ви заміните каталог `bind` в `/etc` на каталог `bind`,
який ви *щойно* розпакували, із `debian-bind-no-slave.tar.xz`

Подібним чином (від імені root):

	cp -R bind /etc/bind

У наступних розділах, ми розглянемо різні файли, пояснюючи, що вони собою являють,
і де потрібні зміни, що потрібно змінити.

/etc/bind/bind.keys (не змінювати)
-------------------

Цей файл надається *Консорціумом систем Інтернету*, і його не можна змінювати
безпосередньо. Він містить ключі, які замінюють вбудовані ключі, з якими
bind9 постачається. Вони використовуються для 13 існуючих кореневих серверів імен, що
існують (`a.root-servers.net`, `b.root-servers.net`... аж
до `m.root-servers.net`), які обробляють домени верхнього рівня. DNS є централізованим,
але NS/Glue records встановлюються вверх за течією, які делегують авторитетному
серверу імен для вашої зони, напр. `example.com`.

Знову ж таки, *ніколи* не змінюйте цей файл безпосередньо. Однак ви повинні перевіряти принаймні
раз на місяць на наявність нової версії. Він не часто змінюється, але ви можете знайти
новіші версії цього файлу тут:

<https://www.isc.org/bind-keys>

Версія, надана Fedfree, ідентична версії, взятій з ISC, була
актуальною станом на 25 грудня 2022 року.

/etc/bind/db.root (не змінювати)
-----------------

Цей файл визначає кореневі сервери імен. В Інтернеті їх
*13*, починаючи від `a.root-servers.net`,
до `b.root-servers.net`... аж до `m.root-servers.net`.

Цей файл *не* можна змінювати безпосередньо. Його надає InterNIC, і
ви повинні перевіряти наявність оновлень принаймні раз на місяць (він
змінюється не дуже часто, але одного разу на місяць більше ніж достатньо ретельно).

Оновлені версії можна знайти на `ftp.internic.net` (протокол FTP) в
директорії `/domain/`, ім'я файлу `named.cache`.

Версія, надана Fedfree, ідентична версії, отриманій від InterNIC,
була актуальною станом на 25 грудня 2022 року.

/etc/bind/db.127 (не змінювати)
----------------

Файл зони для IP-адреси (зони) `127.0.0.1`, яка розв'язується до localhost.

/etc/bind/db.empty (не змінювати)
------------------

Файл зони для порожньої зони RFC 1918.

/etc/bind/name.conf.default-zones (не змінювати)
---------------------------------

Прямі та зворотні зони localhost. (Відповідність RFC 1912)

/etc/bind/named.conf.options (не змінювати)
----------------------------

Цей файл *не* потребує змін. Пояснення
деяких налаштувань у ньому:

	allow-transfer { none; };

Рядок `allow-transfer` стосується головного та підлеглого. Оскільки ми не
налаштовуємо підлеглого, ми можемо проігнорувати це повністю.

	recursion no;

Якщо `recursion` ввімкнено, це стане *розпізнавачем*, таким,
який ви б налаштували для розпізнавання будь-якого доменного імені в інтернеті. Ми хочемо,
щоб це був лише авторитетний сервер доменних імен, для *наших* доменів, тому для цього параметра
встановленно значення `ні`.

	dnssec-validation auto;

Це стосується DNSSEC, коли *ми* розпізнаємо імена з *інших* серверів
імен. Цей параметр абсолютно не має значення для цілей
керівництва. Ми можемо залишити це (але будь ласка, залиште це там).

	auth-nxdomain no;

Якщо для  параметра `auth-nxdomain` встановлено значення `так`, наш сервер відповідатиме авторитетно
навіть для зон, які поза нашого контролю. Ми хочемо, щоб він був авторитетним лише
для *наших* зон, тому ми встановили для цього значення `ні`.

	listen-on-v6 { any; };

Це має пояснювати само за себе. Це дозволяє BIND прослуховувати IPv6
адреси. Ми *хочемо* працювати з подвійним стеком IPv4 та IPv6, тому
параметр `any` дає змогу працювати відповідно.

/etc/bind/db.0 (не змінювати)
--------------

Зворотні правила для широкомовної зони (нульові адреси). Залиште це як є.

/etc/bind/db.255 (не змінювати)
----------------

Так само.

/etc/bind/db.local (не змінювати)
------------------

Правила пересилання для локальних петлевих адрес, напр. `127.0.0.1` або `::1`,
які розв'язуються на `localhost`.

/etc/bind/named.conf
--------------------

Це основний конфігураційний файл для bind9. У нашому випадку, використовуючи
файли зразків, це просто посилання на файли підконфігурації, такі
як named.conf.options, як описано вище.

Вміст файлу для довідки:

```
include "/etc/bind/named.conf.options";
include "/etc/bind/named.conf.local";
include "/etc/bind/named.conf.default-zones";
```

/etc/bind/named.conf.local
--------------------------

*Цей* файл важливий. Тут ми визначаємо зони, напр. `shlinux.org`.
Для кожної зазначеної зони визначається шлях до *файлу зони*.

Будь ласка, зверніть пильну увагу.

Вміст файлу в наших довідкових конфігураціях:

```
zone "libreboot.org" {
	type master;
	file "/etc/bind/zones/db.libreboot.org";
};
zone "shlinux.org" {
	type master;
	file "/etc/bind/zones/db.shlinux.org";
};
zone "fedfree.org" {
	type master;
	file "/etc/bind/zones/db.fedfree.org";
};
zone "130.172.187.81.in-addr.arpa" {
	type master;
	file "/etc/bind/zones/db.ipv4ns1";
};
zone "2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.b.b.1.5.9.b.0.0.b.8.0.1.0.0.2.ip6.arpa" {
	type master;
	file "/etc/bind/zones/db.ipv6ns1";
};
```

Видаліть записи libreboot/shlinux/fedfree і додайте туди свої власні,
для ваших доменних імен. У цьому посібнику ми будемо вважати, що ви розміщуєте власні
файли зон в директорії `/etc/bind/zones`. Файли зони повинні
містити в собі всі записи DNS, такі як AAAA/A, NS, TXT, CAA тощо.
Інформацію про те, що міститься в цих файлах, буде розглянуто пізніше в
посібнику.

У наведених вище записах ви бачите, що останні два виглядають справді дуже дивно!

Це зворотні зони для IP-адрес. Вони взяті (25 грудня
2022 року) для сервера імен `ns1.shlinux.org`. У той день він мав
такі IP-адреси:

* `81.187.172.130` (IPv4 `ns1.shlinux.org`)
* `81.187.172.131` (IPv4 `ns2.shlinux.org`)
* `2001:8b0:b95:1bb5::2` (IPv6 `ns1.shlinux.org`)
* `2001:8b0:b95:1bb5::3` (IPv6 `ns2.shlinux.org`)

Ми спочатку *розглянемо* ці файли зон, коли дійдемо до файлів зон. Наразі
вам слід змінити файл `named.conf.local` таким чином:

Ваша ns1 IPv4-адреса спочатку: виконайте цю команду:

	host IPv4-адреса

Ви отримаєте адресу `in-addr.arpa`, схожу на наведену вище. Для запису, що
стосується `db.ipv4ns1`, встановіть назву `зони` відповідно. Наприклад,
IP-адреса 1.2.3.4 стане `4.3.2.1.in-addr.arpa`.

Запис IPv6-адреси `2001:8b0:b95:1bb4:4`, для частини, що стосується
`db.ipv6ns1`, був
би: `4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.b.b.1.5.9.b.0.0.b.8.0.1.0.0.2.ip6.arpa`

Ви помітите, що IP-адреси вказані в *зворотному порядку*, в наведених вище прикладах.
Це вбудовані записи зворотного DNS для ваших IP-адрес. Усі IPv4 та IPv6
адреси мають їх.

Взявши два вигадані приклади, як зазначено вище, ми б змінили ці записи таким
чином:

```
zone "4.3.2.1.in-addr.arpa" {
	type master;
	file "/etc/bind/zones/db.ipv4ns1";
};
zone "4.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.4.b.b.1.5.9.b.0.0.b.8.0.1.0.0.2.ip6.arpa" {
	type master;
	file "/etc/bind/zones/db.ipv6ns1";
};
```

У прикладі IPv6 це в зворотному порядку, і кожна *цифра* шістнадцяткової групи
з 4 розділена крапками. Так, наприклад, `2001:` на початку IPv6-адреси
(як у прикладі вище) є `1.0.0.2.ip6.arpa` в кінці
рядка.

Слід зазначити: у цьому посібнику для IPv6 ми використовуємо застарілий
ip6.arpa формат, разом із адресами AAAA, на відміну від нових записів A6/DNAME;
на практиці старий спосіб працює чудово, і він простіший. Це
ніколи *не* працюватиме. Більше інформації про це доступно тут:

<https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_16.htm>

Записи A6 можуть бути охоплені пізніше, але вони (наразі) не
розглядаються в цьому посібнику.

/etc/bind/zones.rfc1918
-----------------------

Вони *не використовуються* в нашому прикладі конфігурації, але вони стосуються
[RFC 1918](https://www.rfc-editor.org/rfc/rfc1918)

Увімкніть це або не вмикайте. Вам вирішувати. Розкоментуйте його рядок
під `named.conf.local`.

Конфігурація файлу зони
=======================

Давайте поговоримо серйозно.

Перш за все, ПЕРЕД налаштуванням доменних імен, ми повинні подбати про
файли `db.ipv4ns1` та `db.ipv6ns1`. Ми розглянемо *їх* спочатку, а потім
розглянемо доменне ім'я, яке використовується для роботи ваших серверів імен (знову ж таки,
ми припускаємо, що ви використовуєте `ns1` та `ns2` на одному доменному імені).

/etc/bind/zones/db.ipv4ns1
--------------------------

Ім'я файлу містить "ns1" в собі, але цей файл має містити записи `PTR` і `NS`,
що стосуються як `ns1`, так і `ns2`. У наданих зразках файлів ви
побачите:

```
$TTL	604800
@	IN	SOA	shlinux.org. leah.libreboot.org. (
			 20221226	; Порядковий
			 604800		; Оновити
			  86400		; Повторіть спробу
			2419200		; Закінчується
			 604800 )	; Негативний кеш TTL

; Сервери імен
		IN	  NS	  ns1.shlinux.org.
		IN	  NS	  ns2.shlinux.org.

;ptr записи
130	 IN	  PTR	  ns1.shlinux.org.
131	IN	  PTR	  ns2.shlinux.org.
;
```

По-перше, зверніть увагу на ці рядки:

```
		IN	  NS	  ns1.shlinux.org.
		IN	  NS	  ns2.shlinux.org.
```

Змініть їх на будь-які ваші власні зони сервера імен. Наприклад,
`ns1.boobworld.com` і `ns2.boobworld.com`.

Тепер зверніть увагу на ці рядки:

```
130	 IN	  PTR	  ns1.shlinux.org.
131	IN	  PTR	  ns2.shlinux.org.
```

У наших зразках конфігураційних файлів ми налаштовуємо `ns1.shlinux.org` і `ns2.shlinux.org`,
які, відповідно, відповідають `81.187.172.130` і `81.187.172.131`.
Ці IP-адреси мають розмір підмережі `/28` (32 віднять 4 дорівнює 28; 2 в
ступіні 4 це 16, тоді ви берете адресу підмережі+широкомовну адресу та
адресу маршрутизатора в підмережі, що дасть 13 доступних IP-адрес).

Пам'ятайте, що адреса IPv4 `81.187.172.130` відповідає
`130.172.187.81.in-addr.arpa`; у цьому випадку, оскільки це /28, але
оскільки це в межах `130` октету, ви можете думати
про `130` як про *субдомен* `172.187.81.in-addr.arpa` (це не
технічно коректна, але корисна аналогія).

Таким чином, "ім'я хоста" `130` у зоні має мати запис PTR,
який відповідає `ns1.shlinux.org`. Запис PTR іноді називають
"зворотним DNS".

Так само для запису 131.

Зверніть також увагу на:

```
			 20221226	; Порядковий
```

Послідовний рядок *потрібно* змінювати щоразу, коли ви змінюєте файл зони. Рекомендується
використовувати дату ISO (РРРРММДД), але ви можете вказати майже будь-що
туди.

Ви *повинні* змінити цей файл, відповідно до *ваших* IP-адрес і назви зони.

/etc/bind/zones/db.ipv6ns1
--------------------------

Цей файл виконує те саме, що й `db.ipv4ns1`, але для IPv6.

У наших зразках файлів ми бачимо:

```
$TTL	604800
@	IN	SOA	shlinux.org. leah.libreboot.org. (
			 20221226	; Порядковий
			 604800		; Оновити
			  86400		; Повторіть спробу
			2419200		; Закінчується
			 604800 )	; Негативний кеш TTL

; Сервери імен
	   IN	  NS	  ns1.shlinux.org.
		IN	  NS	  ns2.shlinux.org.

;ptr записи
2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0	 IN	  PTR	  ns1.shlinux.org.
3.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0	 IN	  PTR	  ns2.shlinux.org.
```

Більшість з цих записів в точності те ж саме. Насправді, всі вони,
але правила для IPv6 інші:

Візьміть рядок, який каже `2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0`, наприклад:

Цей рядок відповідає `2001:8b0:b95:1bb5::2`. `::` є скороченням,
але повна адреса була
би: `2001:08b0:0b95:1bb5:0000:0000:0000:0002`. Видаліть символи : та
відокремте цифри крапками, ми би
отримали: `2.0.0.1.0.8.b.0.0.b.9.5.1.b.b.5.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.2`.

Розташуйте цифри в зворотньому порядку, і ми би
отримали: `2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0.5.b.b.1.5.9.b.0.0.b.8.0.1.0.0.2`

Ця IPv6 адреса має префікс розміром `/64`, та адреси IPv6
128 біт розміром, тобто по суті ми обрізаємо половину:

* `2.0.0.0.0.0.0.0.0.0.0.0.0.0.0.0` має відповідати через PTR запис
  `ns1.shlinux.org`

Те саме для ns2, використовуючи той самий метод по адресі IPv6
`2001:8b0:b95:1bb5::3`.

Ви *мусите* відредагувати цей файл, відповідно до своїх власних адрес IPv6 та
імені зони.

Більше інформації про це доступно тут:

<https://docstore.mik.ua/orelly/networking_2ndEd/dns/ch10_16.htm>

/etc/bind/zones/db.shlinux.org
------------------------------

*Цей* файл зони для `shlinux.org`, в якому файли для приклада також
налаштовують `ns1.shlinux.org` та `ns2.shlinux.org`. Ви маєте вказати свій власний
файл для доменного імені, яке використовуєте, замінюючи `db.shlinux.org`.

В файлі для приклада (який справді використовується у виробництві 26 грудня 2022 року, для
shlinux.org), ви маєте побачити:

```
$TTL	604800
@	IN	SOA	ns1.shlinux.org. leah.libreboot.org. (
			   20221230		; Порядковий
			 604800		; Оновити
			  86400		; Повторіть спробу
			2419200		; Закінчується
			 604800 )	; Негативний кеш TTL
;
shlinux.org.	IN	NS	ns1.shlinux.org.
shlinux.org.  IN	  NS	  ns2.shlinux.org.
shlinux.org.	IN	CAA	0 issue "letsencrypt.org"
shlinux.org.	IN	CAA	0 iodef "mailto:leah@libreboot.org"
ns1		IN	A	81.187.172.130
ns1		IN	AAAA	2001:8b0:b95:1bb5::2
ns2		IN	A	81.187.172.131
ns2		IN	AAAA	2001:8b0:b95:1bb5::3
shlinux.org.	IN	A	81.187.172.132
shlinux.org.  IN	  AAAA	2001:8b0:b95:1bb5::4
www		IN	A	81.187.172.132
www		IN	AAAA	2001:8b0:b95:1bb5::4
aimbot		IN	A	81.187.172.129
aimbot		IN	AAAA 2001:8b0:b95:1bb5::1
```

Як завжди, пам'ятайте про зміну рядка `Порядковий`, коли редагуєте файл зони.

**Рядок `leah.libreboot.org` в секції SOA в дійсності адреса електронної
пошти (`leah@libreboot.org`). *Будь ласка*, змініть це на щось інше,
тому що я *не* хочу отримувати звіти про ваше доменне ім'я. Дякую!**

В наведенному вище прикладі, ми бачимо ці записи:

```
shlinux.org.	IN	NS	ns1.shlinux.org.
shlinux.org.  IN	  NS	  ns2.shlinux.org.
ns1		IN	A	81.187.172.130
ns1		IN	AAAA	2001:8b0:b95:1bb5::2
ns2		IN	A	81.187.172.131
ns2		IN	AAAA	2001:8b0:b95:1bb5::3
```

Зверніть увагу на те, як `shlinux.org.` звертається до *самого себе* для двох записів `NS`.
Це самопосилання доменного імені, і ми налаштували IP в
попередніх секціях цього керівництва.

*Через те*, що це самопосилання, наш файл зони вказує звичайні записи
A і AAAA, які вказують на IP для цих імен. У випадку
shlinux.org, щонайменш станом на 25 грудня 2022 року, ці IP використані:

* `ns1.shlinux.org` (IPv4): `81.187.172.130`
* `ns1.shlinux.org` (IPv6): `2001:8b0:b95:1bb5::2`
* `ns2.shlinux.org` (IPv4): `81.187.172.131`
* `ns2.shlinux.org` (IPv6): `2001:8b0:b95:1bb5::3`

*З метою DNS*, тільки `ns1`/`ns2` A/AAAA та `shlinux.org.`
NS записи мають значення. Це ідеально прийнятно для зони, яка виконує сервери імен
також зазначати звичайні веб-речі наприклад (`www` A та AAAA записи), як
вище, і вона навіть може виконувати email (пов'язані з email DNS записи не присутні,
в наведеному вище прикладі).

Щоб підвести підсумки, ми маємо:

* Вказані IPv4 та IPv6 glue, в обліковому записі реєстратора
* Також вказали NS записи, на стороні реєстратора
* Вказали PTR/зворотні зони для IP, в bind9
* Вказали NS та PTR записи в файлі зони доменного імені

Таким чином, усе необхідне з'єднання має бути на місці, і ви можете просто
використовувати свій сервер імен!

В моєму випадку, я вказую NS записи для доменів `ns1.shlinux.org`
та `ns2.shlinux.org`; потім я створюю відповідні файли зон, і пишу
будь-які записи, які хочу щоб були там, для кожного доменного імені. Я розміщую *багато* доменів, на
сервері імен shlinux. Дуже багато. Мої доменні імена, на цей момент, як персонажі
Де Уоллі, але я ніколи не вичерпаю свій хостинг DNS.

Підходимо до висновків
===========

Коли ви будете впевнені, що BIND правильно налаштовано, ви можете розпочати BIND:

	systemctl start bind9

Ви можете зупинити його подібними чином:

	systemctl stop bind9

Ви можете перезапустити його подібним чином:

	systemctl restart bind9

Додавання доменних імен
===================

Як можна дізнатися з наведених вище розділів, відредагуйте
файл `/etc/bind/named.conf.options` і вкажіть домен, із шляхом
до файлу зони.

Ви створите потім той файл зони.

Для отримання більш загальних вказівок щодо файлів зон без самопосилання, прошу звернутися
до [zonefile-bind.md](zonefile-bind.md)

Ви *також* знайдете інші файли зон для прикладу, в конфігураційних файлах для прикладу,
які ви використовували в процесі дотримання цього керівництва. Почувайтесь вільними використовувати їх
в якості посилання.

Випробування
=======

У своїй основі, ці програми можуть бути використані різними способами, щоб випробувати
домени, які налаштовано на сервері імен:

* `dig`
* `host`
* `ping`

Перевірьте керівництво, для цих програм. Вони будуть доступні на будь-якій
системі Unix, яку ви маєте, такій як Linux або BSD.

Зворотній DNS, сторона інтернет-провайдера
=====================

*МИ* також маємо налаштований зворотній DNS, але ваш інтернет-провайдер це той,
хто призначає адреси IP, незалежно чи це жорсткої лінії,
чи тунельний провайдер.

Ви можете захотіти встановити PTR/rDNS записи, задля розваги.

Зробіть це:

	host 81.187.172.130
	host 81.187.172.131
	host 2001:8b0:b95:1bb5::2
	host 2001:8b0:b95:1bb5::3

Ви з'ясуєте, що ці насправді відповідають `ns1.shlinux.org`
та `ns2.shlinux.org`, публічно. Мій сервер імен працює перед
тунельним маршрутизатором L2TP через Andrews & Arnold Ltd (AAISP), використовуючи те саме налаштування, яке
описано
в [router/debian-l2tp-aaisp.html](../router/debian-l2tp-aaisp.html) - і
A&A дозволяє вам встановлювати rDNS для IP. Я зробила так, для всіх IP, що використовую.

rDNS в особливості важливий для розміщення *електронної пошти*, що ви імовірно
захочете налаштувати, якщо ви досить спритні, щоб прослідувати цьому керівництву DNS.

Перевірьте IPv6
=========

Пізніше, коли ви закінчите налаштовувати все, ви можете перевірити IPv6
статус з використанням цього чудового сервіса перевірки:

<https://www.mythic-beasts.com/ipv6/health-check>

Найбільш важливо, сервіс перевірки, на який наведено посилання вище, перевіряє наявність з'єднання в налаштуваннях *лише* для
IPv6, щоб ви знали, чи можуть користувачі інтернету лише IPv6 отримати
доступ до ваших сервісів. Тримайте це посилання під рукою! Mythic Beasts також чудовий
провайдер хостинга VPS, про який я цілком можу розповісти в майбутньому посібнику про те, як запустити
ваш власний тунельний сервер OpenVPN або WireGuard, на якому потім запустити
локальний тунельний маршрутизатор для розміщення домашнього сервера.

Налагодження
=========

Про будь-які проблемні питання з BIND буде повідомлено в `/var/log/syslog`.

Сумнівна згадка: RNDC
=====================

BIND поставляється з демоном під назвою RNDC, який можна використовувати для віддаленого
керування сервером імен, за допомогою секретного ключа.

Це слід вважати загрозою безпеки для більшості виробничих цілей,
якщо не налаштовано правильно **та не використовується належним чином** (ця остання частина,
де більшість людей лажать). Неправильно налаштований демон RNDC
дозволить будь-якій особі в інтернеті возитися з вашим сервером імен.

Це не описано та не включено ні в цьому посібнику, ні в наданих
зразках конфігурацій.

Якщо у вас є файли зони, для набору доменів, редагування цих
файлів зони не вимагає перезапуску bind9. Допоки `порядковий`
запис оновлюється відповідно, все має бути добре, і ви могли би
редагувати файли зони в SFTP сесії під chroot через OpenSSH.

Демон RNDC *може* бути корисним, і може бути розглянутий в майбутньому
послідовному керівництві.

Посилання
==========

Ви можете знайти документацію bind вище за течією корисною. BIND підтримується
*Консорціумом Інтернет-систем*, і ви можете знайти веб-сайт тут:

<https://www.isc.org/bind/>

Репозіторій Git вище за течією, щонайменш на 25 грудня 2022 року, може бути знайдено тут:

<https://gitlab.isc.org/isc-projects/bind9>

Документація доступна тут:

<https://gitlab.isc.org/isc-projects/bind9/-/tree/main/doc>

Більше нічого сказати. Весело провести час!
